#ifndef MOTOR_H
#define MOTOR_H

#include "zf_common_headfile.h"


// 电机结构体
typedef struct {
    const char* dir_device;   // 方向控制设备路径
    const char* pwm_device;   // PWM控制设备路径
    struct pwm_info pwm_info; // PWM设备信息(使用库中定义的结构体)
    int16 current_duty;     // 当前占空比设置
} Motor;

// 电机控制器全局变量
extern Motor motor1;           // 电机1实例
extern Motor motor2;           // 电机2实例
extern int16 max_speed_duty; // 最大速度限制(百分比)
extern int16 min_speed_duty;


// 函数声明
void MotorController_initialize();
void MotorController_cleanup();
void MotorController_setLeftMotor(int16 speed);
void MotorController_setRightMotor(int16 speed);
void MotorController_setMotors(int16 leftSpeed, int16 rightSpeed);
void MotorController_stopAll();
void MotorController_sigintHandler(int signum);

#endif // MOTOR_H